﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using web_api.DtoParameters;
using web_api.Entities;
using web_api.Helpers;

namespace web_api.Services
{
  public interface ICompanyRepository
  {
    Task<PagedList<Company>> GetCompaniesAsync(CompanyDtoParameters parameters);
    Task<Company> GetCompanyAsync(Guid companyId);
    Task<IEnumerable<Company>> GetCompaniesAsync(IEnumerable<Guid> companyIds);
    void AddCompany(Company company);
    void UpdateCompany(Company company);
    void DeleteCompany(Company company);
    Task<bool> CompanyExistsAsync(Guid companyId);
    Task<IEnumerable<Employee>> GetEmployeesAsync(Guid companyId,string genderDisplay,string q);
    Task<Employee> GetEmployeeAsync(Guid companyId, Guid employeeId);
    void AddEmployee(Guid companyId, Employee employee);
    void UpdateEmployee(Employee employee);
    void DeleteEmployee(Employee employee);
    Task<bool> SaveAsync();
  }
}
